//教务处发布转专业工作通知，距离转专业考试还有66天
//#include <stdio.h>
//int main()
//{
//	char str[100],*p[100],*k;
//	int i=0,j=0,flag=0;
//	gets(str);
//	while(str[i])
//	{
//		if(str[i]==' ')
//			flag=0;
//		else if(flag==0)
//		{
//			p[j++]=str+i;
//			flag=1;
//		}
//		i++;
//		
//	}
//	for(i=j-1;i>=0;i--)
//	{
//		k=p[i];
//		while(*k!=' '&&*k!='\0')
//		{
//			putchar(*k);
//			k++;
//		}
//		printf(" ");
//	}
//	return 0;
//}
//ex050415.c
//#include <stdio.h>
//void main(void)
//{
//	char Str[80], *Ptr[30], i, j = 0, flag = 0;
//	
//	gets(Str);
//	
//	for (i = 0; Str[i]; i++)
//	{
//		if (Str[i] == ' ')
//			flag = 0;
//		else
//			if (flag == 0)
//			{
//				Ptr[j] = &Str[i];
//				flag = 1;
//				j++;
//			}
//	}
//	
//	for (i = j - 1; i >= 0; i--)
//	{
//		for (j = 0; *(Ptr[i] + j) != ' ' && *(Ptr[i] + j) != '\0'; j++)
//			putchar(*(Ptr[i] + j));
//		printf(" ");
//	}
//	printf("\n");
//}
//#include <stdio.h>
//#include <math.h>
//int prime(int i)
//{
//	int j;
//	for(j=2;j<i;j++)
//		if(i%j==0)
//			return 0;
//	return i;
//}
//int main()
//{
//	int n,count=0,i;
//	scanf("%d",&n);
//	for(i=2;i<=n;i++)
//	{
//		if(prime(i))
//			count+=i;
//	}
//	printf("%d",count);
//	return 0;
//}

#include <stdio.h>
#include <string.h>
void sort(char **q)
{
	char tmp[100];
	int i,j;
	for(i=9;i>=0;i--)
	{
		for(j=0;j<i;j++)
		{
			if(strcmp(q[j],q[j+1])>0)
			{
				strcpy(tmp,q[j]);
				strcpy(q[j],q[j+1]);
				strcpy(q[j+1],tmp);
			}
		}
	}
}
int main()
{
	char q[10][100],*p1[10];
	int i;
	for(i=0;i<10;i++)
		scanf("%s",q[i]);
	for(i=0;i<10;i++)
		p1[i]=q[i];
	sort(p1);
	for(i=0;i<10;i++)
		printf("%s",q[i]);
	return 0;
}
